Systems and methods for improving the readability of content

ABSTRACT

Systems and methods are disclosed for improving readability of content wherein content is organized into segments that are each displayed on a respective row on a display device. Each segment is made up of characters such as letters and punctuation. The text in a particular row, the reading row, on the display device is displayed differently than the text in the other rows. Each row is consecutively displayed in the reading row until the user has seen each segment of the content presented in the reading row. Users are able to configure the display of the reading row text and text in other rows independently.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/015,458, filed Jun. 22, 2018, entitled “Systems and Methods forImproving the Readability of Content,” which is a continuation of U.S.patent application Ser. No. 15/822,911, filed Nov. 27, 2017, entitled“Systems and Methods for Improving the Readability of Content,” which isa continuation of U.S. patent application Ser. No. 14/727,433, filedJun. 1, 2015, entitled “Systems and Methods for Improving theReadability of Content,” which claims priority under 35 U.S.C. § 119(e)to U.S. Provisional Patent Application No. 62/005,695, filed May 30,2014, entitled “System and Method for Assisting Visually-Impaired Usersto View Visual Content,” the disclosures of each of which are herebyincorporated by reference in their entirety.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialwhich is or may be subject to copyright protection. The copyright ownerhas no objection to the facsimile reproduction by anyone of the patentdocument or the patent disclosure, as it appears in the Patent andTrademark Office patent file or records, but otherwise reserves allcopyrights whatsoever.

BACKGROUND

The subject application relates generally to systems and methods fordisplaying content on a display device, such as, but not limited to, thedisplay device of an e-reader, a phone, a computer, or the like. Inparticular, the subject application relates to systems and methods forassisting visually impaired readers to take in and process content.

In addition to traditional paper reading matter such as books,magazines, etc., many readers use electronic devices such as e-readers,tablet computers, smart phones, personal computers, notebooks, andsimilar devices to consume content such as reading matter. Such devicestypically provide the text of content on a display device in a form thatmakes it appear generally similar to the form that text of content wouldbe provided on a page in a traditional book depending upon the settingsof the device and/or application being executed by the device. Forexample, the words may be arranged in the same manner in which words arefound on one page of a traditional book. In particular, there are aplurality of lines of text on the display of a page and those lines arelaid out from the top of the page to the bottom of the page.Alternatively, for example, the text may be laid out in a manner thatdepicts two pages of the book, a right page and a left page, as would beseen by the reader of a physical book.

The community of people (“readers”) who read books on electronic devicesis a large one. While many people are able to easily read the text ofcontent as displayed on a book or on such a display device, certainpeople have difficulty reading content as it is typically laid out on apage of a traditional book. In some cases, readers suffer from visualdysfunction that distorts their response to information received fromthe central versus the peripheral parts of their visual field. Suchreaders may be characterized by a measurement of theirperiphery-to-center ratio (“PCR”.) For such readers, the readingexperience can be improved by providing an interface that accentuateswords in the center of a reader's visual field relative to words on theperiphery of the reader's visual field.

Others who benefit from an interface that provides improved readabilityof content include those who suffer from other disabilities that detractfrom their ability to read efficiently. For example, some individualssuffer from difficulties that limit their ability to focus on text on apage (such as eye difficulties or tremors of the body) or that limitstheir ability to use their hands to turn pages or control an electronicdevice (such as paralysis). Those individuals benefit from an interfacethat provides automated text presentation and that eases thedifficulties of focusing on text.

BRIEF SUMMARY

In accordance with a first embodiment, the subject application providesa computer readable medium storing instructions which when executed by aprocessor improve the readability of content on a display device. Theinstructions include organizing the content into a plurality ofsegments. The instructions further provide for selecting a first of theplurality of segments to be a first reading segment and selecting othersof the plurality of segments to be first background segments. Inaccordance with the instructions, the processor displays a pane on thedisplay device, the pane configured as a plurality of rows, each rowconfigured to display characters, wherein a first row of the pluralityof rows is a reading row and each other row is a background row. Theinstructions then provide for displaying the first reading segmentaccording to a first readability parameter in the location of thereading row and displaying each first background segment according to asecond readability parameter in the location of a respective backgroundrow. Upon receiving a transition prompt, the processor follows theinstructions in selecting a second one of the plurality of segments tobe a second reading segment and selecting others of the plurality ofsegments to be second background segments, displaying the second readingsegment according to a first readability parameter in the location ofthe reading row, and displaying each second background segment accordingto a second readability parameter in the location of a respectivebackground row.

In accordance with a second embodiment, the subject application providesan apparatus for improving the readability of a content, including aninput device, a display device, a processor, and a program havingexecutable instructions stored in the memory and configured to beexecuted by the processor. The program includes instructions fororganizing the content into a plurality of segments, selecting a firstof the plurality of segments to be a first reading segment and selectingothers of the plurality of segments to be first background segments, anddisplaying a pane on the display device, the pane configured as aplurality of rows, each row configured to display characters, wherein afirst row of the plurality of rows is a reading row and each other rowis a background row. The instructions further provide for displaying thefirst reading segment according to a first readability parameter in thelocation of the reading row, displaying each first background segmentaccording to a second readability parameter in the location of arespective background row, and upon receiving a transition prompt,selecting a second one of the plurality of segments to be a secondreading segment and selecting others of the plurality of segments to besecond background segments. The program further provides for displayingthe second reading segment according to a first readability parameter inthe location of the reading row; and displaying each second backgroundsegment according to a second readability parameter in the location of arespective background row.

In accordance with another embodiment, the disclosure provides for anelectronic device for use by a visually impaired reader. The electronicdevice includes an input device, a display device, a processor; and aprogram having executable instructions stored in the memory andconfigured to be executed by the processor. The program includesexecutable instructions for organizing the content into a plurality ofsegments, selecting a first of the plurality of segments to be a firstreading segment and selecting others of the plurality of segments to befirst background segments; and displaying a pane on the display device,the pane configured as a plurality of rows, each row configured todisplay characters, wherein a first row of the plurality of rows is areading row and each other row is a background row. The program furtherincludes instructions for displaying the first reading segment accordingto a first readability parameter in the location of the reading row anddisplaying each first background segment as visual filler in thelocation of a respective background row. The program responds to areceipt of a transition prompt by selecting a second one of theplurality of segments to be a second reading segment and selectingothers of the plurality of segments to be second background segments,displaying the second reading segment according to a first readabilityparameter in the location of the reading row; and displaying each secondbackground segment according to a second readability parameter in thelocation of a respective background row.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The foregoing summary, as well as the following detailed description ofseveral aspects of the subject application, will be better understoodwhen read in conjunction with the appended drawings. For the purpose ofillustrating the subject application there are shown in the drawingsseveral aspects, but it should be understood that the subjectapplication is not limited to the precise arrangements andinstrumentalities shown.

In the drawings:

FIG. 1A depicts a flowchart of one method for improving the readabilityof content on a display device in accordance with an embodiment of thepresent invention;

FIG. 1B depicts a device including a display area (pane) and a controlarea, the content on the display area (pane) is displayed according tothe method described in the flowchart of FIG. 1 in accordance withcertain embodiments of the present invention;

FIG. 2 depicts a schematic view of an exemplary network environmentwithin which various embodiments of the present invention may beimplemented;

FIG. 3 depicts a block diagram of an exemplary computing device withwhich various embodiments of the present invention may be implemented;

FIG. 4A depicts an alternate flowchart of a process of displayingcontent in accordance with an embodiment of the present invention;

FIG. 4B depicts a flowchart of a process of organizing content intosegments in accordance with an embodiment of the present invention;

FIG. 5 illustrates an exemplary pane for displaying content in a firststate in accordance with an embodiment of the present invention;

FIG. 6 illustrates the pane of FIG. 5 in a second state in accordancewith an embodiment of the present invention set to horizontal scrollingmode;

FIG. 7 illustrates the pane of FIG. 5 in a second state in accordancewith an embodiment of the present invention set to vertical scrollingmode;

FIG. 8A illustrates the pane of FIG. 5 in a state wherein a word isshown as selected in accordance with an embodiment of the presentinvention; and

FIG. 8B illustrates the display of a signifier in accordance with oneembodiment of the present invention.

DETAILED DESCRIPTION

Reference will now be made in detail to the various aspects of thesubject application illustrated in the accompanying drawings. Whereverpossible, the same or like reference numbers will be used throughout thedrawings to refer to the same or like features. It should be noted thatthe drawings are in simplified form and are not drawn to precise scale.In reference to the disclosure herein, for purposes of convenience andclarity only, directional terms such as top, bottom, left, right, above,below and diagonal, are used with respect to the accompanying drawings.Such directional terms used in conjunction with the followingdescription of the drawings should not be construed to limit the scopeof the subject application in any manner not explicitly set forth.Additionally, the term “a,” as used in the specification, means “atleast one.” The terminology includes the words above specificallymentioned, derivatives thereof, and words of similar import.

Furthermore, the subject application references certain processes whichare presented as series of ordered steps. It should be understood thatthe steps described with respect to those processes are not to beunderstood as enumerated consecutive lists but could be performed invarious orders while still embodying the invention described herein.

Reader interfaces for use on computing devices are known in the art andinclude, without limitation, Nook e-reader and application software(available at barnesandnoble.com) and the Kindle e-reader andapplication software (available at amazon.com). Such interfaces allowreaders to read text-based content on electronic devices. Electronicdevices provide a number of advantages over traditional bound paperreading materials such as: improved portability, network access tocontent, and customization of the interface (e.g., font size, textlayout.)

As discussed in greater detail herein, the present disclosure describessystems and methods that allow a user who is reading content on anelectronic device to read the content more easily and efficiently.Moreover, the disclosed systems and methods provide certain advantagesfor readers who suffer from certain types of visual impairments whichmay impact their PCR response, for example, dyslexia or otherdifficulties that distort a reader's visual response to central vs.peripheral parts of his or her visual field. Readers who suffer fromsuch visual impairments can have an easier time reading content on adisplay when the text displayed in the center of the reader's visualfield is highlighted with respect to the text on the rest of a displayof the electronic device. That is, the reader can read more easily whenthe line that he or she is reading is highlighted with respect to theother lines on the page. Displaying the highlighted line as well as theother lines on the page in lieu of the highlighted line alone isbeneficial because studies have indicated that providing a page ordisplay device with a single reading line of text only decreases readingefficiency.

FIG. 2 represents an exemplary computing system environment and anexemplary content store, respectively, for allowing a user of computingdevice 302 (described in detail below) to receive content via a networkand/or server and to perform the techniques described herein withrespect to FIGS. 1A-8B. The depicted computing system environment isonly one example of a suitable computing environment and is not intendedto suggest any limitation as to the scope of use or functionality.Depicted in FIG. 2 is an exemplary system 200 for implementing anetwork-based embodiment of the present invention. Such a network-basedembodiment is suitable for readers who receive content or displayfunctionality distributed to their device over the network. Thisexemplary system includes, inter alia, a computing device 302 and server208, which interface to each other via network 206. Server 208 hasaccess to content store 210, wherein content files are stored. Contentstore 210 may be located in a database resident on server 208, anindependent database or other memory accessible by server 208, a similarcontent management system, a disk storage or other similar systemsuitable for storing and accessing electronic files. Content store 210has one or more content files 212 which are accessible from server 208.In certain embodiments server 208 provides networked access (throughdownload or streaming) to the content files 212 to make those filesaccessible on computing device 302. It should be noted as that computingdevice 302 has a system memory suitable for local temporary or permanentstorage of content files. In some embodiments of the present invention,network 206 is the Internet and computing device has an Internetconnection that allows content to be downloaded, streamed, or the likefrom the remote server 208. FIG. 3 depicts a schematic view of anexemplary computing device 302 on which various embodiments of thepresent invention may be implemented in a standalone manner or in anetworked manner as described herein. For example, a user of a computingdevice such as computing device 302 may utilize the device to readcontent and to perform the processes described herein with respect toFIGS. 1-2 and 4A-8B. The depicted computing system environments depictedin FIGS. 2 and 3 are exemplary of two suitable computing environmentsand are not intended to suggest any limitation as to the scope of use orfunctionality. Numerous other general purpose or special purposecomputing system environments, computing devices, and configurations maybe used or substituted. Examples of well-known computing systems,devices, environments, and/or configurations that may be suitable foruse include, but are not limited to, personal computers (“PCs”), servercomputers, handheld or laptop devices, multi-processor systems,microprocessor-based systems, network PCs, minicomputers, mainframecomputers, e-readers, cell phones, tablets, embedded systems,distributed computing environments that include any of the above systemsor devices, and the like.

Computer-executable instructions such as programs or program modulesexecuted by a computing device or processing unit may be used.Generally, program modules include routines, programs, objects,components, data structures, etc. that perform particular tasks orimplement particular abstract data types. Distributed computingenvironments may be used where tasks are performed by remote processingdevices that are linked through a communications network or other datatransmission medium. In a distributed computing environment, programmodules and other data may be located in both local and remote computerstorage media including memory storage devices.

Computing device 302, in its most basic configuration as depicted inFIG. 3, includes at least one processing unit 318 and at least onememory 304. Depending on the exact configuration and type of thecomputing device, memory 304 may be volatile (such as random accessmemory (“RAM”)), non-volatile (such as read-only memory (“ROM”), flashmemory, etc.), or some combination of the two. In addition to thatdescribed herein, computing device 302 can be any network-accessibledevice (e.g., cell phone, smart phone, e-reader, personal computer, orthe like) including those operating via Android, Apple, and/or Windowsmobile or non-mobile operating systems.

Computing device 302 may have additional features/functionality. Forexample, computing device 302 may include additional storage (removableand/or non-removable) including, but not limited to, magnetic or opticaldisks or tape, thumb drives, and external hard drives as applicable.Such additional storage is illustrated in FIG. 3 by removable storage308 and non-removable storage 310.

Computing device 302 typically includes or is provided with a variety ofcomputer-readable media. Computer-readable media can be any availablemedia that can be accessed by computing device 302 and includes bothvolatile and non-volatile media, removable and non-removable media. Byway of example, and not limitation, computer-readable media may comprisecomputer storage media and computer memory which contains on atransitory basis communication media that are streamed to device 302 viacommunication connections 312.

Computer storage media includes volatile and non-volatile, removable andnon-removable media implemented in any method or technology for storageof information such as computer-readable instructions, data structures,program modules or other data. Memory 304, removable storage 308, andnon-removable storage 310 are all examples of computer storage media.Computer storage media includes, but is not limited to, RAM, ROM,electrically erasable programmable read-only memory (“EEPROM”), flashmemory or other memory technology, CD-ROM, digital versatile disks(“DVD”) or other optical storage, magnetic cassettes, magnetic tape,magnetic disk storage or other magnetic storage devices, or any othermedium which can be used to store the desired information and which canaccessed by computing device 302. Any such computer storage media may bepart of computing device 302 as applicable.

Computing device 302 may also contain communications connection 312 thatallows the device to communicate with other device. Communication mediatypically embodies computer-readable instructions, data structures,program modules and/or other data in a modulated data signal such as acarrier wave or other transport mechanism and includes any informationdelivery media. The term “modulated data signal” refers to a signal thathas one or more of its characteristics set or changed in such a manneras to encode information in the signal. By way of example, and notlimitation, communication media includes wired media such as a wirednetwork or direct-wired connection, and wireless media such as acoustic,radio frequency (“RF”), infrared and other wireless media. The termcomputer-readable media as used herein includes both storage media andcommunication media.

Computing device 302 may also have input device(s) 314 such as keyboard,mouse, pen, voice input device, touch input device, etc. Outputdevice(s) 316 such as a display, speakers, printer, etc. may also beincluded. All these devices are generally known to the relevant publicand therefore need not be discussed in any detail herein except asprovided.

Notably, referring back to FIG. 2, computing device 302 may beinter-connected with network 206. As may be appreciated, network 206 maybe any appropriate network and computing device 302 may be connectedthereto by way of an interface such as communication connections 312 inany appropriate manner, and computing device 302 may communicate withone or more of the other computing devices via network 206 in anyappropriate manner. For example, network 206 may be a wired network,wireless network, or a combination thereof within an organization orhome or the like, and may include a direct or indirect coupling to anexternal network such as the Internet or the like. Likewise, network 206may be such an external network including, without limitation, theInternet.

Computing device 302 may connect to server 208 via an internal orexternal network. Although FIG. 2 depicts computing device 302 locatedin close proximity to server 208, this depiction is not intended todefine any geographic boundaries. For example, when network 206 is theInternet, computing device can have any physical location. For example,computing device may be a tablet, cell phone, personal computer,e-reader, or the like located at any user's office, home, etc. Orcomputing device could be located proximate to server 208 withoutdeparting from the scope hereof. Also, although FIG. 2 depicts computingdevice 302 coupled to server 208 via network 206, computing devices maybe coupled to server 208 via any other compatible networks including,without limitation, an intranet, local area network, or the like.

In FIG. 2 the depicted embodiment of system 200 uses a standard clientserver technology architecture, which allows users of system 200 toaccess information stored in the database 210 a via a user interface.The application or program may be in communication with a server such asserver 208 which is accessible via a network such as the Internet usinga publically addressable Uniform Resource Locator (“URL”) in order toreceive content to display. For example, users can access content fromexemplary system 200 using any web-enabled device equipped with a webbrowser. Communication between software component and sub-systems areachieved by a combination of direct function calls, publish andsubscribe mechanisms, stored procedures, and direct SQL queries,however, alternate components, methods, and/or sub-systems may besubstituted without departing from the scope hereof.

In the depicted embodiment, computing device 302 may be equipped withone or more Web browsers to allow them to interact with server 208 via aHypertext Transfer Protocol (“HTTP”). HTTP functions as arequest-response protocol in client-server computing. For example, a webbrowser operating on computing device 302 may execute a clientapplication that allows it to interact with applications executed byserver 208. The client application submits HTTP request messages to theserver. Server 208, which provides resources such as HTML files andother content, or performs other functions on behalf of the clientapplication, returns a response message to the client application uponrequest. The response typically contains completion status informationabout the request as well as the requested content. However, alternatemethods of computing device/server communications may be substitutedwithout departing from the scope hereof.

In the exemplary system 300, computing device 302 stores in its systemmemory 304 one or more content files (files that contain text suitablefor reading such as that taken from a book, a magazine article, or thelike) stored in a format suitable for transferring over the network andprocessing at the computing device 302. Examples of suitable fileformats for content stored in the content store include: ASCII, PDF,TXT, .DOC, .Irf, .Irx, .chm, .epub, or the like. Typical content fileshave associated metadata such as a file name, author, edition,information relating to the type of content (e.g., genre associated withthe content), and the like which are stored in the content file (forexample, in the header of the content file). Certain content files mayinclude information regarding the formatting or layout of the contentsuch font, font size, the location within the content of line breaks,and the like.

As shown in FIG. 3, a computing device 302 has a system memory that islocally attached and/or integrated into computing device 302. The localcontent store contains files suitable for processing by the systemdescribed herein. Such files may be obtained for storage on the memory304, removable storage 308, and/or non-removable storage 310 throughvarious techniques including, but not limited to, having been:downloaded via a network connection (e.g., from a network viacommunication connection 312); stored in a local buffer as a part of amedia stream; pre-loaded on memory 304, removable storage 308, and/ornon-removable storage 310; generated locally at the computing device;transferred from a removable storage device 308 (e.g., a flash drive) tomemory 304; or similar methods of obtaining electronic files for storageon a storage device.

It should be understood that the various techniques described herein maybe implemented in connection with hardware or software or, asappropriate, with a combination of both. Thus, the methods and apparatusof the presently disclosed subject matter, or certain aspects orportions thereof, may take the form of program code (i.e., instructions,scripts, and the like) embodied in tangible media, such as floppydiskettes, CD-ROMs, hard drives, or any other machine-readable storagemedium wherein, when the program code is loaded into and executed by amachine, such as a computer, the machine becomes an apparatus forpracticing the presently disclosed subject matter.

In the case of program code execution on programmable computers, thecomputing device generally includes a processor, a storage mediumreadable by the processor (including volatile and non-volatile memoryand/or storage elements), at least one input device, and at least oneoutput device. One or more programs may implement or utilize theprocesses described in connection with the presently disclosed subjectmatter (e.g., through the use of an application-program interface(“API”), reusable controls, or the like). Such programs may beimplemented in as code in a high-level procedural or object-orientedprogramming language to communicate with a computer system. However, theprogram(s) can be implemented in assembly language or machine language,if desired. In any case, the code may be a compiled or interpretedlanguage, and combined with hardware implementations.

Although exemplary embodiments may refer to utilizing aspects of thepresently disclosed subject matter in the context of one or morestand-alone computer systems, the subject matter is not so limited, butrather may be implemented in connection with any computing environment,such as system 300 or a distributed computing environment. Stillfurther, aspects of the presently disclosed subject matter may beimplemented in or across a plurality of processing chips or devices, andstorage may similarly be effected across a plurality of devices in orconnected with system 300. Such devices might include personalcomputers, network servers, and handheld devices (e.g., cell phones,tablets, smartphones, etc.), for example.

In the exemplary embodiment, computing device 302 is programmed toexecute a plurality of processes including those referenced with respectto FIGS. 1, 2, 4A-8 b as discussed in greater detail below.

Referring now to FIG. 4A, depicted is an exemplary process 400 fordisplaying content on a computing device. First, at step 402, theapplication (“program”) is initiated. This step occurs, for example,after the application is initiated within an operating system such asAndroid, Windows, iOS, or a similar computing device system. Suchinitiating may occur, for example, when the user double clicks an iconassociated with the application. In certain embodiments of the presentdisclosure, for example when the user is using the application toconsume content on an e-reader, turning on the computing device (i.e.,the e-reader) may automatically initiate the application as indicated instep 402.

The user has the option of modifying configuration parameters as shownin step 404. In certain embodiments of the invention, the configurationparameters may be modified or set by the user prior to initiating theapplication via preset parameters stored in memory. Such presetparameters may be entered through available interfaces (e.g., thecontrol panel of the computing device, an application settingsinterface, etc.) as further described below.

Configuration parameters are used by the application to determine thesetup of the area of the display device in which the text of the contentis displayed (i.e., the “pane”.) The configuration parameters may alsoinclude information that is used by the application in setting thedisplay features as well as display and program functionality providedto the user via a control area. The control area provides an interfaceto an application user which allows the user to modify some of thefunctionality of the application. Configuration parameters may include,but are not limited to: the refresh rate of a Cathode-Ray Tube (“CRT”);the width, height and/or shape of the pane (as described below),quantity, size, and/or location of text rows (“rows”) presented in thepane; the length of each row in the pane; the color of the pane; thelanguage in which the text of the controls will be displayed; thebrightness of the pane, and any other parameters that determine themanner in which the pane and/or control area appears on the displaydevice.

As utilized herein, a pane is the region of the display device in whichthe text of the content designated to be displayed to a user appears onthe display device. An example of a pane 152 on a display 150 isillustrated in FIG. 1B. As also shown in FIG. 1B, pane 152 includes aplurality of rows indicated by 160 a-160 g and 162, each of whichcorresponds to a specific location in the pane. However, alternate formsof pane 152 may be substituted without departing from the scope of thepresent disclosure including, without limitation, a window displayed onthe display device or the presentation area of a web browser (i.e., thearea in the browser where a web page is displayed). In certainembodiments, a pane may appear as if it partially or fully coversmaterial previously presented to the user via the display device.

In certain embodiments, a control area 154 as indicated in FIG. 1B maybe located adjacent to (as in FIG. 1B) pane 152. Control area 154 mayinclude user controls including, but not limited to, selectablegraphical controls 156 a-c which may be used to control thefunctionality or various aspects of the appearance of the application.Examples of functions which may be utilized or modified via the usercontrols include: setting or re-setting configuration parameters asdiscussed above, setting or re-setting parameters that determine howtext of the content is displayed (i.e., readability parameters) asdiscussed below, and application controls (e.g., stopping, pausing orchanging the speed of text transitions) as discussed in greater detailbelow. Also, such controls may also be used to select a particularcontent file for display by the application.

Generally, the graphical controls may allow a user to alter readabilityparameters of the text and to modify the transition or scrollingbehavior of the application. Upon receiving a signal generated by theselectable graphical controls, the application responds by changing itsfunctionality (for example, how it displays content). Other examples ofsignals that can be generated by the selectable graphical controls aresignals that cause the application to: pause the transition of text(which pauses the transition of the text), change scrolling mode (e.g.,from vertical scrolling to horizontal scrolling or vice versa), reversethe direction of the scrolling, or change the speed at which the texttransition occurs. However, alternate embodiments are envisioned inwhich the control area 154 is not always visible but rather is displayedupon command. In such embodiments, when initiated by the user, thecontrol area “pops up” on the display device in a window or the like andmay appear as if it is covering some or all of the material that waspreviously presented to the user (e.g., pane 152) via the displaydevice. In yet another alternate embodiment, the application iscontrolled by keyed entries made by the user (e.g., activation offunction keys or the like via a keyboard or other input device) withoutthe need for a corresponding display of the controls via a “pop up”window, control area, or the like.

Display of the control area 154 may be initiated by the user via a mouseclick or similar user input to the application. Or, alternatively, incertain embodiments of the present disclosure, the configurationparameters may be preset or may be determined automatically by theapplication based on environmental or computing device conditionsincluding, but not limited to: battery life, quantity and quality of theambient light in the location where the display is viewed, and the like.

Returning to FIG. 4A, in step 406, the user selects content that will bedisplayed on the pane. In an exemplary embodiment the user may usecontrols 156 a-c to select content. The user may select content to beread through various techniques such as by clicking or double-clickingthe name of the content as it appears in a list displayed to the user.Alternatively, the user may type metadata (e.g., a file name, genre, orsimilar information) associated with the desired content into an addressfield or a search field in order to locate and retrieve such content. Inan exemplary embodiment, a content would be an electronically accessiblefile containing a book, article, or other reading material.

In step 408, the user configures readability parameters. The readabilityparameters are used by the application to determine how the applicationdisplays the text of the content on the rows of the pane. Typically, thecontent is made up of characters, words, or other arrangements ofcharacters which are presented to the user via the display device.

The readability parameters are used to determine how the text of thecontent is displayed to the user. For example, readability parametersmay include, but are not limited to, row background color, text color,font size, font type, contrast ratio (i.e., the contrast ratio betweenthe text and the background on which the text is displayed). Differentsets of parameters may be used for text that appears at differentlocations (rows). In the depicted embodiment, for example, the readingrow(s) and background row(s) have different sets of parameters that maybe individually set by the user, however, the invention is not solimited. It should be noted that we refer herein to a readabilityparameter in the singular form but a readability parameter may be aparameter that includes multiple parameters which collectively determinea number of distinct aspects of how text will be displayed in aparticular row (e.g., vector structure). That is, a single readabilityparameter may include any and all of: font type, font size, backgroundstyle, background color, text effects (e.g. boldface, all caps), orsimilar descriptors that may be used to determine how the text isdisplayed.

In certain embodiments the readability parameters associated with eachof the reading row and the background row are specified so that a highcontrast is provided between the text displayed in the reading row andthe text displayed in the background row. An embodiment utilizing suchreadability parameters is referred to as operating in High ContrastMode. In particular, such embodiments provide a high contrast displaymode for content displayed on the panel. In high contrast mode a line oftext is highlighted relative to the other lines of text which appear onthe screen.

An example of different rows of text, some of which are displayedaccording to one or more distinct readability parameters is shown inFIG. 1B. FIG. 1B illustrates an example of pane in accordance with anembodiment of the invention in which the text in row 162 (the “readingrow”) is presented with a set of first readability parameters and thetext in rows 160 a-g (the “background rows”) are presented with a secondset of readability parameters. More specifically, the text displayed onrow 162 is presented in a boldfaced font against a white background. Thetext presented in rows 160 a-g is presented against a hashed backgroundand in a non-boldface font. Displaying the rows of text in a manner thathighlights the text in the reading row, as illustrated in the exemplaryembodiment depicted in FIG. 2, allows some readers to more efficientlyread text displayed in the reading row.

Referring again to FIG. 4A, in step 410, the application processes thecontent. In performing this step, the program organizes the content intosegments, each segment containing one or more words or other charactersof the content. As discussed in greater detail below, FIG. 4Billustrates a flow chart of a process 500 of an exemplary method ofprocessing content for display to the user.

In step 412, the application displays some or all of the content on thepane. The pane is displayed according to the configuration parameters.The content is processed by the application and thus organized intosegments (each segment includes characters and/or words from thecontent). Each segment is presented on an associated row. As mentionedpreviously, different rows (and hence different segments) may bepresented according to distinct readability parameters.

Referring now to FIG. 4B, depicted is an exemplary flowchart of aprocess 500 for organizing content into segments in accordance with anembodiment of the present invention. In step 502, the length of each row(“row length”) in the display area (i.e., pane 152) is determined. Therow length is used to determine the number of characters of text thatcan fit in that row. Various techniques may be used to determine the rowlength. In an exemplary embodiment, the application determines thelength (in characters) of each row by dividing the width of the pane(which is defined by the configuration parameters) by the width of thecharacters to be displayed. Certain fonts have characters which take upa fixed amount of space. Alternatively, some fonts have variable widthcharacters. In an instance in which a variable width font is used, theapplication may calculate the length of the row by dividing the width ofthe pane by the width of the widest character in the font set.

In step 504, the words and other characters of the content are organizedinto segments (e.g., each segment is sized so as to fit within a singlerow). The content is composed of a set of characters (e.g. letters,punctuation marks, spaces, and other marks which may be represented asASCII characters). The application processes the content to identify andcount each distinct word within the content. In an exemplary embodiment,the number of characters in each segment is calculated by determiningthe width of a row in characters. This calculation is performed based onthe characteristics of the pane (which may define the width of a row)and the size of the characters that will be used to display the content,both of which may be set by the user as described above. Varioustechniques are available to calculate the number of characters persegment, and such techniques may vary based upon whether the font to beused employs characters of fixed width (i.e., all characters in the fonthave the same width) or variable width (i.e., the characters in the fonthave varying widths). If the font width is fixed, the number ofcharacters in a row may be determined by dividing the row width by thecharacter width. Various techniques may be used for fonts with variablewidth including, without limitation, assigning each character to have awidth equal to the width of the widest character in the font andperforming the division as described above for fixed font characters.

After determining the number of characters that can fit in arow/segment, words from the text of the content are associated with aplurality of numbered segments in consecutive order. More specifically,the first words of the content are associated with a first segment. Whenthe first segment is full (i.e., there is not enough space left in thesegment for the next characters or the characters of the next word), thenext characters or the characters of the next word are used to create asecond segment. That is, the application counts the number of charactersas they are added to the first segment until the word or othercharacter(s) added to the first segment would cause the length of thefirst segment to exceed the length of the row as calculated above. Whenthis occurs, the last word or other character(s) (i.e., the word orother character(s) that caused the segment to exceed the row length) isremoved from the first segment. The first segment is then closed (thatis, the words associated with that first segment are assigned and thenext (second) segment is opened to receive words). That is, the firstword or other character(s) of that next (second) segment is the lastword or other character(s) removed from the previous (first) segment. Inthis manner, all of the words or other character(s) of the complete textof the content are assigned to a plurality of consecutively numberedsegments and the text of the content may be fully reproduced bypresenting each numbered segment to the user in a consecutive manner.The quantity of segments that are generated based on a particularcontent may vary based upon criteria including, but not limited to: rowlength; font size and type; and lengths of the words of the content. Itshould also be noted that the quantity of segments generated for aparticular content may vary if a user reconfigures any of the parametersdiscussed above.

In accordance with certain embodiments of the present invention, certaincontent files may include metadata in the header of the file which canbe utilized by the application in performing step 504. For example, suchmetadata may be used by the application in the step of organizing thecontent into segments. In such instances the step of organizing thecontent into segments includes reading the content file header (usingany of the various well known techniques for reading header informationfrom electronic files) and organizing the content into segments based onthe information. In an example wherein the application organizes thecontent into segments based on the information stored in the contentfile header, a content file includes a list of numbers which define thewords from the text of the content go into each segment. To illustratean example of segments organized based on such metadata, a particularcontent file header may specify the organization as follows: the firstsegment (which may be the reading segment) is specified to be associatedwith words one through ten words from the content; the second segment isspecified to be associated with words eleven through nineteen from thecontent. Generally in such an instance the metadata will further includeinformation regarding the configuration parameter to be used inpresenting the content. In an instance where the row length of the paneis not sufficient to display a segment defined according to suchmetadata the application generates an error. The application maydetermine whether the length of the pane is not sufficient to display asegment based on an analysis (counting the characters) of the words inthe segment.

Still referring to FIG. 4B, in step 506, at least a portion of thesegments generated in step 504 are associated with respective rows fordisplay to the user. When the content is first displayed to the user,the first segment to be read by the reader (which typically correspondsto the first words or other character(s) of the content) is assigned tobe the reading segment, and the reading segment is associated with thereading row. That is, the words and other characters of the readingsegment will be displayed in the location of the reading row. As areader reads each segment of the content, the following segment on thepane is consecutively selected to be a reading segment. The readingsegment is associated with the reading row and is presented to thereader according to the readability parameter associated with thereading row. Thus, as each reading segment is consecutively read, thereader progresses through the content. Hereinafter, the segmentassociated with the reading row will be referred to as the readingsegment, and segment(s) associated with background row(s) will bereferred to as background segment(s).

To reiterate, in the embodiment depicted in FIG. 5, on the pane, one ofthe rows is identified as a reading row and the remainder of the rowsare background segments. A segment associated with the reading row isdisplayed differently than segment(s) associated with the backgroundrow(s).

Referring back to FIG. 4A, in step 412, after the content has beenprocessed for display using a process such as, but not limited to,process 500, the content is displayed to the user via the displaydevice. That is, the segments associated with each row as per a processsuch as process 500 are displayed in the location of the correspondingrow on the pane. Further, the reading segment is displayed in thelocation of the corresponding reading row according to a firstreadability parameter, and background segment(s) are displayed in thelocation of the corresponding background row(s) according to a secondreadability parameter, both of which are discussed in greater detailabove with respect to process 500. For example, see FIG. 1B whichillustrates background rows 160 a-160 g displayed according to adifferent set of readability parameters than those used to displayreading row 162.

FIG. 5 illustrates an exemplary pane for displaying content to a user ina first state in accordance with an embodiment of the present invention.In this depicted embodiment, rows 170 a-170 e are background rows androw 172 is a reading row. In background row 170 a, a segment whichincludes the opening words “FOUR SCORE AND SEVEN YEARS AGO” of theGettysburg Address (in this example, the content) is displayed.Similarly, rows 170 b-170 e and row 172 display segments of thefollowing text of the content in the same order in which they appear inthe original content (as a user reads from the top to the bottom of thedisplay device). In reading row 172, a segment which includes the words“A NEW NATION CONCEIVED IN LIBERTY, AND” is displayed.

This display mode and method of displaying the text allows a reader tofocus on the single line of text presented in reading row 172 moreeasily. That is, in a typical use wherein a reader is reading contentusing the application, the reader focuses on, and reads the textdisplayed on reading row 172. While the reader is reading the textdisplayed on the reading row, an opportunity is provided for thereader's peripheral vision to observe and begin to process thecharacters presented in the background rows above and below the readingrow.

After the reader has read the text displayed in the reading row, atransition prompt is generated to cause the application to display a newline of text in the reading row. In response to a transition prompt, theapplication transitions from the display of a current reading segment tothe display of a new reading segment. In certain embodiments, atransition from a current segment (e.g., in the reading row) to a newsegment (e.g., in the reading row) is performed according to a scrollingmode. Examples of scrolling modes include, but are not limited to:horizontal scrolling mode and vertical scrolling mode. Horizontalscrolling mode is performed when the characters in the displayedsegments are sequentially moved horizontally (to the right side or theleft side) or “scrolled” so that characters displayed in each row appearon the opposite end of an adjacent new row as they leave the edge of theprior row. As characters continue to “scroll,” the characters on the newrow continue to move in unison to the right or left side of the displaydevice until all characters have been transferred from their prior rowto their new row. In an exemplary embodiment, when all displayedsegments for all rows have fully transferred from their respective priorrows to their new rows, scrolling will stop to await a new transitionprompt. When received, another scroll will be performed in the samemanner. It should be noted that, during scrolling, the segment locatedin an uppermost row will appear to scroll “off the screen”, i.e., itwill no longer be visible once scrolling is complete. Similarly, duringscrolling, a new segment that was not previously displayed to the userwill scroll into the bottommost row, i.e., it will become visible oncescrolling is complete unless the user is nearing the end of the content.In the latter scenario, the bottommost row will become blank or may befilled with characters that indicate that the end of the content hasbeen reached.

An example of a transition performed with horizontal scrolling isillustrated in a comparison of FIG. 5 and FIG. 6. FIG. 5 shows each row170 a-e and 172 containing words that are associated with a respectivesegment in that row. In FIG. 6 a word has scrolled into each row on theside, the word appears to have moved from the segment displayed on therow below to the segment displayed on the row above. For example, inFIG. 5, row 170 b reads, “FATHERS BROUGHT FORTH, ON THIS CONTINENT”After scrolling has started (but before the scrolling has completed) asshown in FIG. 6, row 170 b reads “BROUGHT FORTH ON THIS CONTINENT ANEW.” The processes illustrated in, for example, FIGS. 1 and 4A willcontinue until the complete line of text that is shown in row 170 c inFIG. 5 (“AND DEDICATED TO THE PROPOSITION THAT ALL”) is displayed online 172 in FIG. 6, at which time the application will pause and awaitanother transition prompt.

In certain embodiments, a transition may be performed by steppedscrolling. Stepped scrolling is similar to horizontal scrolling in thatword-by-word a segment is scrolled into a reading row. However, steppedscrolling is different from horizontal scrolling in that after each wordis scrolled onto the reading row, the application pauses until atransition prompt is generated.

In certain embodiments, a user may select a particular scrolling mode(e.g., horizontal, vertical, or stepped scrolling) or another scrollingoption by using selectable graphical controls such as graphical controls156 a-c shown in FIG. 2 as described in greater detail above.Furthermore, although the depicted embodiments shows horizontalscrolling in which the characters scroll to the right, alternateembodiments are envisioned in which the characters scroll to the left.The particular type of scrolling (e.g., left or right scrolling) may beselected by the user via, for example, the graphical controls.

Vertical scrolling mode is performed when the characters in thedisplayed segments are sequentially moved up or down (from the lineabove or the line below) or “scrolled” so that the characters displayedin a particular row appear on the row above or below the particular row.For explanatory purposes, the description of vertical scrolling hereinwill correspond to scrolling upward (that is, the characters displayedin each row are scrolled on to the row above) but it should beunderstood that in other embodiments the application may be configuredto scroll the characters downward. Once the characters displayed in eachrow have been scrolled upward to their new rows, scrolling will stop toawait a new transition prompt. When received, another scroll will beperformed in the same manner. It should be noted that, during scrolling,the characters in the segment located in the uppermost row will appearto scroll “off the screen”, i.e., they will no longer be visible oncescrolling is complete. Similarly, during scrolling a segment that wasnot previously displayed to the user will scroll into the bottommost rowof the pane. This will continue until the reader approaches the end ofthe content. As the user is nearing the end of the content, thebottommost row will become blank or may be filled with characters thatindicate that the end of the content has been reached.

An example of a transition performed with vertical scrolling isillustrated in a comparison of FIGS. 5 and 7. FIG. 5 shows each row 170a-e and 172 containing words that are associated with a respectivesegment for that row. In FIG. 7, the segments displayed on each row havescrolled upwards on the pane relative to their positions in FIG. 5. InFIG. 5, row 172 reads, “A NEW NATION, CONCEIVED IN LIBERTY, AND”. Aftera vertical scroll is completed as shown in FIG. 6, row 172 reads“DEDICATED TO THE PROPOSITION THAT ALL.” That is, during verticalscrolling, all of the words and characters in a segment move from onerow to another simultaneously. This is in contrast to horizontalscrolling, as described above, wherein the words and/or characters of aparticular segment largely move from one row to another independently.As discussed with regard to horizontal scrolling, although theembodiment depicted in FIGS. 5 and 7 shows vertical scrolling in whichthe characters scroll upward, alternate embodiments are envisioned inwhich the characters scroll downward. The particular scrolling direction(e.g., upward or downward scrolling) may be selected by the user via,for example, the graphical controls.

Returning to FIG. 1A, depicted is a process 100 that illustrates thesteps of an exemplary application in accordance with the presentdisclosure. In an embodiment, an application such as this may be storedon a non-transitory computer readable medium (such as system memory 304)which when executed on a processor of a computing device will perform aseries of steps as indicated. In other embodiments, a program such asthis may be executed on an apparatus for improving the readability ofcontent that includes an input device, a display device, and a processorfor executing the application.

In step 102, the application reads the file containing the content. Forexample, processing unit 318 processes the code of the content file. Instep 104, the application determines whether the content 102 iscorrectly formatted to be displayed by the application. In particular,the application determines whether the content file includes data thatcan be processed into words and/or characters by the application in amanner in which such words and/or characters can be assigned to asegment as discussed herein. An example of a file that is incorrectlyformatted is one that stores the text of the content as a series ofimages wherein, for example, each image represents a page of thecomplete text. Such a file would need to be pre-processed (for example,by an OCR program) to generate character strings that correspond to thewords in the text in order to be processed by the application describedherein. However, alternate embodiments are also envisioned in which suchan OCR program or other necessary programs are incorporated as part ofthe application in order to allow the application to handle incompatiblefiles without the need for third party software and/or file processing.

If the content is correctly formatted, the application will proceed withthe processing of the content. If the content isn't correctly formatted,process 100 proceeds to 105, at which the application will generate anerror message and prompt the user to select a different file orotherwise respond to the formatting issue.

In step 106, process 100 reads the configuration parameters andreadability parameters as previously set by the application or the useras described in greater detail above. Alternatively, the configurationand readability parameters may be read from a default settings fileassociated with the application. The configuration and readabilityparameters may also be read from the header of the content file which isaccessed in step 102.

In step 108, process 100 determines the quantity and length of the rowsto be displayed to the user. The application determines the quantity ofrows to be displayed to the user based on the height of the pane and thefont type and font size of the text to be displayed. The font and fontsize determine the row height required to allow all characters to fit ina row. The height of the pane may be divided by the row height todetermine the quantity of rows that will fit vertically within thepane.]]

The length of each row to be displayed to the user may be determinedbased on the dimensions of the pane and the dimensions of the font usedto represent the text. The width of the pane may be divided by thecharacter width to determine the quantity of characters that will fithorizontally across the pane. That is, the font and the font sizedetermine how long a segment may be without exceeding the length of therow.

However, in alternate embodiments, the quantity and length of the rowsto be displayed to the user may be read from the configurationparameters.

In step 110, the reading pane and the control panel are displayed on thedisplay device according to the configuration parameters read in step106. The application performs this step by interacting with theoperating system and the display device to generate an area on thedisplay device wherein the application output (text of the contentorganized as described herein) may be displayed. The application furthergenerates a control area on the display device where the control panelis displayed. In an exemplary embodiment, at this step, the backgroundto the reading pane is displayed and the controls are made available tothe user of the application.

In step 112, the reading row is determined. In an exemplary embodiment,the reading row is determined to be the row which is located in themiddle (with respect to the top and the bottom) of the pane. This can bedetermined by, for example, by dividing the quantity of rows by two androunding upward or downward, as needed. The result of this equation willindicate the number of the reading row when rows are counted from thetop downward. Or, in certain embodiments, the reading row may bespecified by a configuration parameter that is available to be set by auser (e.g., the configuration parameter may specify that a specific rowon the pane be the reading row). In such a scenario, the user may selectany of the rows to be the reading row. However, alternate methods ofselecting the reading row may be substituted including, withoutlimitation, For example a particular reader may prefer to specify thetopmost or bottommost row as the reading row. Furthermore, depending onthe state and/or configuration of the display device, a particular areaon the display device (and hence row on the pane) may be displayed moreeffectively relative to the other rows (e.g., when a part of a displaydevice malfunctions).

In step 114, the reading segment(s) (the segment that is associated withthe reading row) and the background segment(s) are determined. As partof step 114, the content is organized into a plurality of segments andeach segment is assigned to a row as discussed with respect to process500. As a part of this process, as discussed in greater detail above,segments are selected to be a first reading segment and initialbackground segments. Note that the characters that will be displayed onthe reading row are not necessarily the first characters of the content.If the content is new content not previously read by the user, it islikely that the reading row will display the first characters of thecontent. However, if the content had been partially read by the user ina previous use of the application, it is more likely that the readingrow will display content from a point at which the user stopped reading.This content may be saved automatically or manually when the userterminates a reading session prior to reading the complete text of thecontent.

Alternatively, a reader may specify a particular line of text of thecontent to be displayed in the reading row via a stored mark. Such aspecification may be made, for example, by scrolling through the textand selecting the text via the selectable graphical controls and/or auser input device. A reader may also select a “bookmark” or designate aparticular text portion with a mark. The application may provide a listof marks to the user on command in order to allow the user to select thetext associated with the mark as the starting point for the currentsession (i.e., for initial display on the reading row). In such ascenario, the application determines which particular segment correlatesto the mark by reading data from local memory (which may be stored in anapplication state file) that indicates the text associated with themark. Such information may be associated with a particular user of adevice (where the user may be determined via one of various well knownauthentication methods, such as a password.) and a particular contentfile. In an embodiment wherein bookmarks are used, the applicationidentifies the text associated with the bookmark and determines whichsegment includes that text. This is done, for example, with a bookmarkthat specifies that the mark occurs at the nth word in the text bycounting the words in the content until the nth word is reached anddisplaying the segment containing the nth word as the first segment forthat session.

In step 116, the reading segment is displayed. As part of step 110, apane is displayed on the display device, the pane is configured as aplurality of rows, each row configured to display characters, wherein afirst row of the plurality of rows is a reading row and each other rowis a background row. In step 116, the first reading segment is displayedaccording to a first readability parameter in the location of thereading row as described above with respect to process 400. In step 118the background segments are displayed in the location of the backgroundrows as described above with reference to process 400 and FIG. 5.

In optional step 120, the reader may use an input device to select acharacter, word, or words for which the application will present asignifier. The application presents a signifier in response to a requestfrom a reader received via an input device. A reader uses an inputdevice 314 (e.g. a mouse, a joystick, a touchscreen, or other techniquesfor selecting a word or other character(s) from a line of text) toselect word(s) or other character(s). The reader may further use theinput device to request that the application provide a signifier for theword or the signifier may be presented automatically upon selection ofthe word(s) or other character(s). A signifier is generated by theapplication to provide more information about the selected word or othercharacter(s) to the reader. Such information may include, but is notlimited to: an image associated with the word/character(s); an enlargeddisplay of the word/character(s) (to make it easier to read); adefinition, antonym, or synonym of the word/character(s); a phoneticdepiction of the word/character(s); an audible pronunciation of theword/character(s); and a sound associated with the word/character(s).Display or other presentation of a signifier may be helpful to allreaders but may be particularly useful for vision impaired individualswho see a word but do not recognize its meaning. Alternatively, in somecases, individuals may not recognize the word for which the signifier isrequested because it is unfamiliar to them. In yet other cases,individuals may have trouble recognizing the words due to a visualimpairment. Certain readers may have trouble recognizing aword/character(s) in a line of text due to its visual context, that is,due to the text or other images displayed around the word. For suchreaders, certain embodiments of the invention provide a mode wherein theselection of a word may be used to generate a new pane which replacesthe previous display in a manner that appears to substantially (orcompletely) cover the pane on which the reading segment was displayed.The new pane displays only the signifier (or an enlarged view of thesignifier) for the word which was selected. In certain embodiments thenew pane may present a definition or other information for the selectedword.

FIGS. 8A and 8B illustrate such an embodiment wherein a word “CONCEIVED”184 within the reading segment 172 of a pane 180 is shown as selected inFIG. 8A and displayed as the word “CONCEIVED” 192 on a new pane 190which substantially replaces the display of the pane 180 on whichCONCEIVED 184 was displayed in a manner in which it appears as if thenew pane 190 covers the majority of the prior pane 180. In theembodiment illustrated in FIG. 8b , the word CONCEIVED is displayed as asignifier for the word CONCEIVED. The signifier is presented as enlargedtext in a pane that obscures the majority of the previously displayedpane. The signifier provides assistance to the user in reading the wordby changing the visual context associated with the word. However, anyinformation associated with the selected word, including withoutlimitation the information discussed above, may be displayed as asignifier in new pane 190 without departing from the scope hereof. Also,in some embodiments, selecting a word causes the application to displayan option box to the user. The user may interact with the option box viaan input device to select the type of information he or she wishes tosee as the signifier. This selection may be made prior to display ofpane 190. For example, the user may choose a signifier type such as:enlarged view, definition, pronunciation guidance, or the like,following the choice of signifier type the signifier will be displayedto the user with or without use of a new pane 190.

In step 122, the current reading segment is transitioned to a newreading segment. Step 120 may be performed upon receiving a transitionprompt and may include selecting a second one of the plurality ofsegments to be a second reading segment and selecting others of theplurality of segments to be second background segments. Following theperformance of step 120, the program may display the second readingsegment according to a first readability parameter in the location ofthe reading row and display each second background segment according toa second readability parameter in the location of a respectivebackground row.

With regard to step 122, it should be noted that the transition mayoccur as a result of a transition prompt. In a typical embodiment,following the initial display of the text as described herein, theapplication may encounter such a transition prompt. A transition promptis a signal to the application, or from within the application, thatindicates that the reader has finished (or should have finished) readingthe segment displayed in the reading row.

In accordance with certain embodiments, there are various means ofgenerating a transition prompt as described above with respect to step122 in process 100. For example, a transition prompt may be generated bya user via a signal generated by an input device or via a menuassociated with the computing device. A transition prompt may also begenerated by a time report from the processor or the expiration of atimer on the computing device. The expiration of the timer occurs whenthe time since the previous transition prompt exceeds a time threshold.The time threshold may be a single fixed time for all segments or may,in certain embodiments, be dependent on the particular segment beingdisplayed in the reading row. For example, a segment containing morewords or more difficult words (that is, with a higher degree ofdifficulty of the text) may be associated with a longer time threshold.Such a longer time threshold causes a longer wait before the generationof a transition prompt. Different times associated with particular linesof text may be input by the user, read from the metadata of the file or,in certain embodiments generated by the application based on the readingbehavior or ability of the readers.

In an embodiment where the time threshold is determined based on thedifficulty of the text in a segment, various techniques may be used todetermine the difficulty of the text. For example, certain embodimentsmay determine the time threshold based on the lexical complexity of asegment, where the lexical complexity may be calculated according towell-known techniques to determine lexical complexity such as thosedisclosed in: Ai, Haiyang and Lu, Xiaofei (2010). A web-based system forautomatic measurement of lexical complexity”, Paper presented at the27th Annual Symposium of the Computer-Assisted Language Consortium(CALICO-10). Amherst, Mass. June 8-12, which is hereby incorporated byreference in its entirety as if fully set forth herein. In anotherexample a time threshold may be calculated based on the readability ofthe text as characterized according to known techniques such as theFlesch-Kincaid readability test as described in: Izgi, U., Seker, BurcuSezginsoy; Comparing Different Readability Formulas on the Examples ofScience-Technology and Social Science Textbooks. V. 46, 2012, Pgs.178-182 4th World Conference on Educational Sciences (WCES-2012) 02-05;February 2012, Barcelona, Spain, which is hereby incorporated byreference in its entirety as if fully set forth herein. In an embodimentwhere the time threshold is calculated based on a reading ability of theapplication user, the application may determine the reading ability ofthe reader by accessing data from local memory (which may be stored inan application state file) that indicates the user's reading ability.

Upon detection of the transition prompt, typically the new readingsegment is selected as the segment in the text of the content thatfollows the previous reading segment. Also, typically, the applicationchanges the segment identified as the reading segment to a backgroundsegment and identifies a new segment (that is, one of the segments whichwas previously presented as a background segment) as the readingsegment. An example of this is described above with respect to FIGS.5-7. However, this is not always the case. If the reading row is at thetop or bottom of the display device, and depending on the selectedscrolling mode and scrolling direction, a reading segment may transitionin a manner in which it is no longer displayed. Similarly, a new readingsegment may be a segment that was not previously able to be viewed bythe reader as a background segment without departing from the scopehereof.

In accordance with certain embodiments of the present disclosure, theremay be more than one reading row. For example, although FIG. 5 depictsone reading row, multiple rows may be designated as reading rows and thetext of the segments associated with all such rows may be displayed withthe readability parameters associated with the reading row (e.g., thefirst readability parameters). Such embodiments handle the presentationand transition of segments into the reading rows as described above withreference to embodiments wherein there is a single reading row.

In certain embodiments, the readability parameters associated with thetext displayed in the location of the background rows may specify thateach background row is displayed as visual filler (i.e., the text in thebackground rows are replaced with other symbols). A readabilityparameter that indicates that visual filler should be displayed changesthe behavior of the application with respect to background rows. Itindicates to the application that the characters in each of the words ineach segment associated with a background row should be replaced by aparticular character (e.g., “*”,“-”,“|”, or the like), which acts as thevisual filler. The role of visual filler characters is to indicate thepresence of the words in the background row without actually showing thecharacters of the text in the background segments. The presentation ofvisual filler in the background rows acts to obscure the words in thesegments presented in the background rows. By displaying visual fillerin the background rows, the application indicates to the peripheralvision of the reader the presence of background text (I.e., the text onthe background rows), however the characters displayed in the backgroundrows do not distract the eye of the reader by showing the text itself.

For example, a readability parameter associated with a background rowmay specify that visual filler should be displayed, and in particularthat the characters in the text of those segments should be displayed asasterisks. That is, each character in each word should be displayed asan asterisk rather than the actual character in the segment. In such acase, an exemplary background row for a segment that includes the words“able was I ere I saw Elbe” would be displayed as “**** *** * *** * *******”. In certain embodiments, visual filler may be set to be a solidline that extends throughout the width of each background row.Presenting the background rows as visual filler may be helpful toreaders who suffer from certain visual impairments. For such readers,visual fillers may provide sufficient visual indicators to trigger thebenefits of the reader's visual peripheral response while minimizingvisual distraction for readers who are focused on reading the readingrow. In summary, although the text displayed in the location of thebackground rows can spell out the actual words, this is not necessary(as is the case when the background rows are displayed as visual filler)for the engagement of the reader's peripheral vision in a manner thathas a positive effect on the reader's reading experience.

It will be appreciated by those skilled in the art that changes could bemade to the aspects described above without departing from the broadinventive concept thereof. It is to be understood, therefore, that thesubject disclosure is not limited to the particular aspects disclosed,but it is intended to cover modifications within the spirit and scope ofthe subject disclosure as defined by the appended claims.

I claim:
 1. A non-transitory computer readable medium for improvingreadability of content on a display device, comprising instructionsstored thereon, which when executed on a processor, perform the stepsof: organizing the content into a plurality of segments, the contentincluding words and/or characters; selecting a first of the plurality ofsegments to be a first reading segment and selecting others of theplurality of segments to be first background segments; displaying afirst pane on the display device, the first pane configured as aplurality of rows displaying the content in the plurality of segments,and wherein a first row of the plurality of rows is a reading row andeach other row is a background row; displaying the first reading segmentaccording to a first readability parameter in the reading row;displaying each first background segment according to a secondreadability parameter in a respective background row; generating atransition prompt and in response to the transition prompt, selecting asecond one of the plurality of segments to be a second reading segmentand selecting others of the plurality of segments to be secondbackground segments; displaying the second reading segment according tothe first readability parameter in the reading row; displaying eachsecond background segment according to the second readability parameterin the respective background row; receiving a selection of a word orcharacter in the first or second reading segments from an input device,presenting a first signifier associated with the selected word orcharacter; and displaying a prompt that indicates an availability of asecond signifier associated with the selected word or character, whereinthe step of presenting the first signifier for the selected word orcharacter comprises displaying a second pane that obscures the firstpane and displays the first signifier.